December 02, 2020
첫 번째 미션은 숫자야구게임을 구현하는 미션이었습니다. 처음 미션을 받았을 때 1주일이라는 시간 동안 충분히 구현이 가능할거라고 착각했습니다.
처음으로 일정한 코드 컨벤션과 커밋 컨벤션을 지키면서 프로그래밍을 진행하게 됐습니다. 컨벤션을 지키면서 프로그래밍을 하다 보니 기존에 함수 분리를 잘 안 하거나, depth에 신경 쓰지 않고 코딩하고 커밋 메세지를 대충 작성하는 등 기존에 가지고 있던 안 좋은 습관들을 깨달을 수 있었습니다.
코딩 컨벤션은 과제 레포지토리에 명시 된 depth제한과 함수나 메소드가 한가지 일만 하도록 최대한 작게 만들라는 점을 중점적으로 뒀고 추가적으로 레포지토리에서 제시한 Google Javascript Style Guide와 TOAST 코딩 컨벤션글을 참고했습니다. 두 문서와 Airbnb Javascript Style Guide 문서도 참고했습니다. 문서들 간에 서로 상충되는 부분이 존재해 특정 스타일 가이드를 무조건적으로 따르지는 않았습니다. 하지만 전체 코드가 일관성 있게 작성되도록 노력했습니다.
README 파일에 구현할 기능들을 미리 정리한 후 프로그래밍하는 경험도 이번이 처음이었습니다. 처음에 필요하다고 생각하고 적었던 기능들이 프로그래밍을 진행하면서 필요 없어지는 경우도 생기고 상세 명세들도 제 예상과 다른 기능이 필요할 때도 있어 README 파일을 자주 수정해야 했습니다. 하지만 구현해야 할 기능들을 미리 작성하고 진행하니 전체 플로우를 사전에 계획할 수 있었고 기능 단위 커밋 또한 가능해졌습니다! 또한 매번 프로그래밍을 시작하기 전 ‘아 뭐부터 하지’라는 멍 때리는 시간도 현저히 줄어들었습니다.
README 파일에 구현할 기능들을 작성하고 코딩 컨벤션, 커밋 컨벤션을 지켜가면서 프로그래밍을 하면서 장점들을 정말 많이 느꼈습니다. 앞으로 프로그래밍을 할 때 함께 해야할 좋은 습관들을 알게 돼서 정말 좋았습니다.
depth를 줄이자.
map()
, reduce()
, every()
등 배열을 순회하는 순회 메소드들을 보다 다양하게 사용해 코드의 가독성을 높일 수 있었습니다.함수와 메소드를 최대한 분리하자.
코딩 컨벤션을 지키자.
Javascript 메소드를 적재적소에 사용하지 못 했다.
reduce()
를 사용했는데 과제 제출 후 다른 분의 코드를 보니 비슷한 로직이지만 reduce()
대신에 forEach()
메소드를 사용해 보다 직관적이게 작성한 것을 보고 아차 싶었습니다.Array.prototype.every()
등 기존에 잘 사용하지 메소드들을 활용한건 고무적인 일이지만 메소드를 적재적소에 활용하기 위해 더 노력해야겠다고 생각했습니다.인라인 함수를 분리하지 못 했다.
함수 선언식 사용
export default function BaseballGame() {}
export default class BaseballGame {}
function
을 선택해서 과제를 진행했습니다. 그러다보니 함수 표현식을 사용하게 되면 export
와 export default
를 혼용해서 사용해야 하고 전체 코드의 일관성을 해친다고 생각해서 전체 코드를 함수 선언식만을 사용해서 작성했습니다.export default
를 사용하는데 메인 템플릿을 제외하고 나머지 요소들을 함수 표현식을 사용해 export
하는게 맞는건지에 대해서는 풀리지 않는 의문을 가지고 있습니다.함수, 변수 네이밍
적절한 메소드 사용하기
코딩 컨벤션 지키면서 프로그래밍 하기.
커밋 컨벤션 지키면서 커밋하기.
README에 기능 목록을 미리 작성한 후 프로그래밍 하기.
네이밍에 더 신경쓰기